using System.Threading.Tasks;

namespace EntityKit.Runtime
{
    /// <summary>
    /// 空加密提供者（不进行任何加密解密操作）
    /// </summary>
    public class NullEncryptionProvider : IEncryptionProvider
    {
        /// <summary>
        /// 加密数据（原样返回）
        /// </summary>
        /// <param name="data">原始数据</param>
        /// <returns>加密后的数据</returns>
        public string Encrypt(string data)
        {
            return data;
        }

        /// <summary>
        /// 异步加密数据（原样返回）
        /// </summary>
        /// <param name="data">原始数据</param>
        /// <returns>加密后的数据</returns>
        public async Task<string> EncryptAsync(string data)
        {
            // 简单操作不需要异步，但为了接口一致性，使用Task.FromResult
            return await Task.FromResult(data);
        }

        /// <summary>
        /// 解密数据（原样返回）
        /// </summary>
        /// <param name="data">加密数据</param>
        /// <returns>解密后的数据</returns>
        public string Decrypt(string data)
        {
            return data;
        }

        /// <summary>
        /// 异步解密数据（原样返回）
        /// </summary>
        /// <param name="data">加密数据</param>
        /// <returns>解密后的数据</returns>
        public async Task<string> DecryptAsync(string data)
        {
            // 简单操作不需要异步，但为了接口一致性，使用Task.FromResult
            return await Task.FromResult(data);
        }
    }
}